package com.lmk.t04;


public class Praents {
    /**
    * 外部类
    */
    private String name;
    public void eat(String food){
        System.out.println("吃"+food);
        class  Desk{ }
        //局部内部类 只能在当前方法中适用
        Desk d=new  Desk();
       class  DsRadio implements Radio{
           @Override
           public boolean play(double channel) {
               return false;
           }
       }
       //内部类可以帮助我们创建接口的对象
       Radio r1=new DsRadio();
       //使用匿名内部类创建接口的对象  是一次性
       Radio r2=new Radio() {
           @Override
           public boolean play(double channel) {
               return false;
           }
       };
       //对于函数式接口 可以使用lambda表达式创建接口
        Radio r3=channel -> false;
    }
    public void sleep(){

    }
    //在外部类的方法中 成员内部类静态内部类的实例化方式 没有任何区别
    Child c=new Child();
    Friend D=new Friend();

    /**
     * 成员内部类
     */
    class Child{
        private  String  name;
        public void text(){
            //访问内部类属性
            System.out.println(this.name);
            //访问外部类属性
            System.out.println(Praents.this.name);
        }
    }

    /**
     * 静态内部类
     */
    static class Friend{
        //public
    }
}
